Structure de contrôle conditionnelle

Header :

Les structures de contrôle conditionnelles sont des éléments fondamentaux de la programmation en PHP. Elles vous permettent de prendre des décisions en fonction de conditions et de contrôler le flux de votre programme. Dans ce chapitre, nous allons explorer les structures conditionnelles en PHP.


Body

L'instruction "if"

L'instruction `if` est utilisée pour exécuter un bloc de code si une condition est vraie. Voici un exemple simple :

$age = 20;

if ($age >= 18) {
    echo "Vous êtes majeur.";
}

Dans cet exemple, le code entre les accolades sera exécuté si l'âge est supérieur ou égal à 18.

L'instruction "else"

L'instruction `else` permet d'exécuter un bloc de code lorsque la condition dans l'instruction if est fausse. Voici un exemple :

$age = 15;

if ($age >= 18) {
    echo "Vous êtes majeur.";
} else {
    echo "Vous êtes mineur.";
}

Dans cet exemple, si l'âge est inférieur à 18, le code dans le bloc else sera exécuté.

L'instruction "elseif"

L'instruction `elseif` permet de vérifier plusieurs conditions dans une séquence. Voici un exemple :

$age = 15;

if ($age >= 18) {
    echo "Vous êtes majeur.";
} elseif ($age >= 13) {
    echo "Vous êtes un adolescent.";
} else {
    echo "Vous êtes un enfant.";
}

Dans cet exemple, plusieurs conditions sont vérifiées en séquence. Si aucune condition n'est vraie, le code dans le bloc else sera exécuté.

Opérateurs Logiques

Les opérateurs logiques tels que && (ET) et || (OU) permettent de combiner des conditions. Par exemple :

$age = 20;
$estEtudiant = true;

if ($age >= 18 && $estEtudiant) {
    echo "Vous êtes un étudiant majeur.";
}

Dans cet exemple, les deux conditions doivent être vraies pour exécuter le code.

L'instruction "switch"

L'instruction `switch` permet de comparer une valeur à plusieurs valeurs possibles. Voici un exemple :

$jour = "lundi";

switch ($jour) {
    case "lundi":
        echo "C'est le début de la semaine.";
        break;
    case "vendredi":
        echo "C'est presque le week-end.";
        break;
    default:
        echo "C'est un autre jour de la semaine.";
}

L'instruction switch compare la variable $jour à différentes valeurs et exécute le code correspondant.

Conclusion

Les structures de contrôle conditionnelles en PHP sont essentielles pour créer des programmes qui prennent des décisions en fonction de conditions. Vous pouvez utiliser if, else, elseif, et switch pour contrôler le flux de votre programme en réagissant aux valeurs et aux conditions.

Parfait, voici une série d'exercices progressifs qui couvrent les structures de contrôle conditionnelles en PHP :

Exercices

Exercice 1 : Utilisation de l'instruction "if"

Écrivez un script PHP qui demande à l'utilisateur de saisir un nombre. Ensuite, utilisez une instruction "if" pour vérifier si le nombre est positif. Si c'est le cas, affichez un message disant que le nombre est positif. Sinon, n'affichez rien.

Exercice 2 : Utilisation de l'instruction "if... else"

Écrivez un script PHP qui demande à l'utilisateur de saisir son âge. Utilisez une instruction "if... else" pour vérifier si l'utilisateur est majeur (âge supérieur ou égal à 18) et affichez un message approprié en conséquence.

Exercice 3 : Utilisation de l'instruction "if... else if... else" (1)

Écrivez un script PHP qui demande à l'utilisateur de saisir un nombre. Utilisez une instruction "if... else if... else" pour classer le nombre en fonction de sa valeur : si le nombre est égal à 0, affichez "Zéro". Si le nombre est positif, affichez "Positif". Si le nombre est négatif, affichez "Négatif".

Exercice 4 : Utilisation de l'instruction "if... else if... else" (2)

Écrivez un script PHP qui demande à l'utilisateur de saisir une note entre 0 et 100. Utilisez une instruction "if... else if... else" pour afficher la mention correspondante en fonction de la note : "Très bien" pour une note supérieure à 90, "Bien" pour une note entre 80 et 89, "Satisfaisant" pour une note entre 70 et 79, et "À améliorer" pour une note inférieure à 70.

Exercice 5 : Utilisation de l'instruction "switch" (1)

Écrivez un script PHP qui demande à l'utilisateur de saisir un jour de la semaine en utilisant un nombre (par exemple, 1 pour lundi, 2 pour mardi, etc.). Utilisez une instruction "switch" pour afficher le nom du jour correspondant.

Exercice 6 : Utilisation de l'instruction "switch" (2)

Écrivez un script PHP qui demande à l'utilisateur de saisir un mois en utilisant un nombre (par exemple, 1 pour janvier, 2 pour février, etc.). Utilisez une instruction "switch" pour afficher le nombre de jours dans ce mois.

Exercice 7 : Conditions Imbriquées (1)

Écrivez un script PHP qui demande à l'utilisateur de saisir deux nombres. Utilisez des conditions imbriquées pour déterminer si le premier nombre est divisible par le deuxième nombre. Affichez un message approprié en fonction du résultat.

Exercice 8 : Conditions Imbriquées (2)

Écrivez un script PHP qui demande à l'utilisateur de saisir trois nombres. Utilisez des conditions imbriquées pour déterminer le plus grand de ces trois nombres et affichez-le.

Exercice 9 : Fait intéressant

  • Refaites l'exercice 3 et 4, mais cette fois, vous n'avez pas droit au else if
  • Refaites l'exercice 7 et 8, mais cette fois, vous n'avez pas droit d'imbriquer les conditions

Exercice 10 : Freestyle en groupe

Partie 1

Pour cet exercice, mettez-vous en groupe de 2.
Votre mission est la suivante : Demandez à l'utilisateur 2 chiffres, le premier correspond à un jour, et le deuxième à un mois. Votre programme devra afficher un résultat comme ceci :

Le 21 janvier est un jour qui existe.

Lorsque vous avez fini ceci, appelez moi. Mon but sera d'essayer de casser votre programme sans toucher au code, essayez qu'il soit le plus résistant possible !

Partie 2

Je suis passé chez vous et tout est ok ? bravo ! Maintenant la suite :

Avec les deux même entrée, si elles sont correctes, votre programme dira maintenant en plus

Le 21 janvier est un jour qui existe, et c'est le 21ème jour de l'année

Montrez-moi que ça marche ! (Mais avant, testez-le pour le 1 décembre, ça marche ?).

**Partie 3

Finalisez notre calendrier de 2023. Basez-vous sur la réalité, car toujours avec les mêmes entrée, je veux que votre programme maintenant affiche

Le 21 janvier 2023 existe bien, c'est le 21ème jour de l'année et c'est un dimanche

Partie 4

Enfin, finalisez votre calendrier. En considérant que chaque année, le premier janvier est un jour après le le premier janvier précédent (le premier janvier 2023 était un dimanche, le premier janvier 2022 était un samedi, 2021 vendredi,... ) sauf les années suivants les années bissextile qui sautent un jour de plus (donc en 2024 ça sera un lundi, mais ça sera une année bissextile, et donc en 2025 le premier janvier sera un mercredi. Pour faire simple, tous les 4 ans, on saute 2 jours au lieu d'un !). Sur ce, rajoutez une entrée à votre programme, demandez l'année qui intéresse la personne, et adaptez le résultat à l'année que l'utilisateur demande. Ainsi le résultat pourra ressembler à :

Le 21 janvier 1983 existe bien, c'est le 21ème jour de l'année et c'est un vendredi

Partie 5

En parallèle, de cette sortie là, faites la même chose, mais essayez d'optimiser votre algorithme à l'aide de la formule de Zellers, voici une petite info :

Zeller's Congruence est une formule mathématique qui permet de calculer le jour de la semaine pour n'importe quelle date du calendrier grégorien. La formule est la suivante :

ℎ=(q+[13(m+1)/5]+K+⌊K/4⌋+[J/4]−2J)%7

Où :

- h est le jour de la semaine (0 = samedi, 1 = dimanche, 2 = lundi, ..., 6 = vendredi).
- q est le jour du mois (1, 2, 3, ..., 31).
- m est le mois (3 = mars, 4 = avril, ..., 12 = décembre, janvier et février étant considérés comme les mois 13 et 14 de l'année précédente).
- J est l'année divisée par 100.
- K est l'année dans le siècle (c'est-à-dire l'année modulo 100).

Pour calculer le jour de la semaine pour le 1er janvier 1805, vous pouvez utiliser les valeurs suivantes :

- q=1
- m=13
- J=18
- K=4

Comparez si vos deux algorithmes sortent les mêmes donnée sur plusieurs dates !